Micron Document
Fox's Git Mirrors

Node / rns-mirrors / Reticulum-Go.git / files / docs / en / compatibility.md

Displaying Rendered • View rawDownload

docs/en/compatibility.md 83609bcb589eb3cfc35b98ecc0b3327b2ae99d77 (83609bcb) Text, 11.48 KB

Compatibility with Python Reticulum

Reference target

Reticulum-Go is tested against Python RNS 1.4.2, plus the official network API reference.

Crossref vectors clone the reference from T383838rns://7649a50d84610232d1416b41d2896aff/reticulum/reticulum via rngit (T383838tests/crossref/run_crossref.sh). The GitHub mirror is not used for vectors.

The detailed matrix with config key tables lives in COMPATIBILITY.md. This page summarizes the key differences and design choices.

Component parity

┌─────────────────────────┬──────────────┬─────────────────────────────────────────────────────────┐
│ Component │ Status │ Notes │
├─────────────────────────┼──────────────┼─────────────────────────────────────────────────────────┤
│ Crypto │ Complete │ Curve25519, AES-256-CBC, HMAC-SHA256, HKDF. Crossref v… │
│ Identity │ Complete │ Optional RHB1 hardware descriptor. Python from_file is… │
│ Destination │ Complete │ SINGLE, GROUP, PLAIN, LINK. Identity ratchets opt-in v… │
│ Packet │ Complete │ Header types 1 and 2, all packet types and contexts │
│ Transport │ Complete │ Path table, announces, relay, persistence, ingress con… │
│ IFAC │ Complete │ UDP, TCP, Auto. Live tests in T383838tests/interop/ifac_live_… │
│ Link │ Complete │ Both directions, RTT, request/response, channel, buffe… │
│ Resource │ Complete │ Multi-part, hashmaps, RESOURCE_PRF, bzip2, split adver… │
│ Channel │ Complete │ Ghost-envelope fix, RX sequence ring, TX window and MD… │
│ Buffer │ Complete │ Stream buffer over channel │
│ Interfaces │ Partial │ See below │
│ Discovery │ Partial │ rnstransport listening works. Announcer and autoconnec… │
│ Blackhole │ Partial │ Local table, announce drop, and LINKIDENTIFY teardown.… │
│ Node lifecycle │ Go-only │ T383838pkg/node embedder API, no Python equivalent │
│ librns C ABI │ Go-only │ T383838pkg/librns, T383838include/rns.h. See librns.

Verification workflow

T282828
# Unit and package tests
make test

# Crossref against Python vectors
./tests/crossref/run_crossref.sh all

# Live Go/Python side by side
RUN_LIVE_INTEROP=1 go test -v ./tests/interop/...

Running alongside Python

Use separate config directories (T383838~/.reticulum-go vs T383838~/.reticulum). Point interfaces at the same peers with matching IFAC and ports. Shared instance ports must not conflict if both try to own the same interface.

To let rgostatus query Python rnsd, point T383838-config at T383838~/.reticulum and align rpckey when set. On Linux both stacks default to Unix RPC when sharedinstance_type is unset. Go tools also fall back to TCP when the type is unset. See CLI utilities.

Related documents

COMPATIBILITY.md full tables
CLI utilities for Go CLI tools and RPC setup

Served by rngit 1.5.2 - Generated in 0.04s